package com.googlecode.spruce.remote.core;

import com.googlecode.spruce.core.ServiceCheckResult;
import com.googlecode.spruce.remote.listener.ServiceCheckListener;

/**
 * A service that receives requests to run a given plugin specified by name
 */
public interface ServiceCheckService
{

    /**
     * Perform a given service check and return the results
     * 
     * @param action
     *            The name of the plugin to invoke
     * @return The result from the plugin
     */
    ServiceCheckResult performServiceCheck(String action);

    void setServiceCheckListener(ServiceCheckListener listener);

    ServiceCheckListener getServiceCheckListener();
}
